export interface ExpenseItem {
  id: string;
  title: string;
  date: string;
  amount: number;
}

export interface ExpenseDetail {
  id: string;
  title: string;
  date: string;
  amount: number;
  description?: string;
  category?: string;
  receipts: Receipt[];
}

export interface Receipt {
  serialNo: string;
  title: string;
  amount: number;
  currency: string;
  date: string;
  category: string;
  merchant: string;
  attachments: BaseAttachment[];
  status: 'pending' | 'approved' | 'rejected';
  createTime: string;
  updateTime: string;
  userId: string;
  themeSerialNo: string;
  items?: ReceiptItem[];
  recognitionStatus?: 'pending' | 'completed' | 'failed';
  imageUri?: string;
  uploadDate?: string;
  taxAmount?: number;
}

export interface BaseAttachment {
  serialNo: string;
  fileName: string;
  isReceipt: boolean;
  ocrProcessed: boolean;
  ocrData: string | null;
  remark: string;
  fileType: string;
}

export interface ReceiptItem {
  id: string;
  name: string;
  quantity: number;
  price: number;
  amount: number;
} 